﻿using QuanLyThuVien.BLL;
using QuanLyThuVien.DTO;
using QuanLyThuVien.Supporter;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QuanLyThuVien.GUI
{
    public partial class GUIDoiMatKhau : DevComponents.DotNetBar.Office2007Form
    {
        private BLLNguoiDung _bllNguoiDung;

        //----------------------------------------------------------------------
        //Desc: constructor mặc định
        //----------------------------------------------------------------------
        public GUIDoiMatKhau()
        {
            InitializeComponent();

            _bllNguoiDung = new BLLNguoiDung();
        }

        //----------------------------------------------------------------------
        //Desc: kiểm tra chứa ký tự đặc biệt
        //----------------------------------------------------------------------
        private bool KiemTraChuaKyTuDacBiet(string taikhoan)
        {
            int dem = 0;
            for (int i = 0; i < taikhoan.Length; i++)
            {
                if ((taikhoan[i] >= 'a' && taikhoan[i] <= 'z')
                    || (taikhoan[i] >= 'A' && taikhoan[i] <= 'Z')
                    || (taikhoan[i] >= '0' && taikhoan[i] <= '9'))
                    dem++;
            }
            if (dem == taikhoan.Length)
                return false;
            else
                return true;
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện click button XacNhan
        //----------------------------------------------------------------------
        private void btnXacNhan_Click(object sender, EventArgs e)
        {
            if (_txtTaiKhoan.Text == "")
            {
                MessageBox.Show("Chưa nhập tài khoản");
                return;
            }

            if (UserManager.User != null && UserManager.User.TaiKhoan != _txtTaiKhoan.Text)
            {
                MessageBox.Show("Không được đổi mật khẩu của người dùng khác");
                return;
            }

            if (_txtMatKhauCu.Text == "")
            {
                MessageBox.Show("Chưa nhập mật khẩu cũ");
                return;
            }

            if (_txtMatKhauMoi.Text == "")
            {
                MessageBox.Show("Chưa nhập mật khẩu mới");
                return;
            }

            if (KiemTraChuaKyTuDacBiet(_txtMatKhauMoi.Text))
            {
                MessageBox.Show("Mật khẩu không được chứa các ký tự đậc biệt");
                return;
            }

            DTONguoiDung nguoidung = _bllNguoiDung.LayThongTinNguoiDung(_txtTaiKhoan.Text, Utils.MaHoa(_txtMatKhauCu.Text));

            if (nguoidung != null)
            {
                nguoidung.MatKhau = Utils.MaHoa(_txtMatKhauMoi.Text);
                if (_bllNguoiDung.CapNhat(nguoidung))
                    MessageBox.Show("Cập nhật thành công");
                else
                    MessageBox.Show("Cập nhật thất bại");
            }
            else
                MessageBox.Show("Tài khoản hoặc mật khẩu không đúng");
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện click button Thoat
        //----------------------------------------------------------------------
        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện load form
        //----------------------------------------------------------------------
        private void GUIDoiMatKhau_Load(object sender, EventArgs e)
        {
            if (UserManager.User != null)
                _txtTaiKhoan.Text = UserManager.User.TaiKhoan;
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện check HienMatKhau
        //----------------------------------------------------------------------
        private void chbHienMatKhauCu_CheckedChanged(object sender, EventArgs e)
        {
            if (_chbHienMatKhauCu.Checked)
                _txtMatKhauCu.UseSystemPasswordChar = false;
            else
                _txtMatKhauCu.UseSystemPasswordChar = true;
        }
        private void chbHienMatKhauMoi_CheckedChanged(object sender, EventArgs e)
        {
            if (_chbHienMatKhauMoi.Checked)
                _txtMatKhauMoi.UseSystemPasswordChar = false;
            else
                _txtMatKhauMoi.UseSystemPasswordChar = true;
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện key press
        //----------------------------------------------------------------------
        private void Special_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Utils.IsSpecialKey(e.KeyChar))
                e.Handled = true;
            else
                e.Handled = false;
        }
    }
}
